// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package android.support.v4.content; import android.os.Message; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Executor; import java.util.concurrent.FutureTask; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; // Referenced classes of package android.support.v4.content: // o, t, p, q, // s, r, u abstract class ModernAsyncTask { private static final String a = "AsyncTask"; private static final int b = 5; private static final int c = 128; public static final Executor d; private static final int e = 1; private static final ThreadFactory f; private static final BlockingQueue g; private static final int h = 1; private static final int i = 2; private static final t j = new t(null); private static volatile Executor k; private final u l = new p(this); private final FutureTask m; private volatile Status n; private final AtomicBoolean o = new AtomicBoolean(); public ModernAsyncTask() { n = Status.PENDING; m = new q(this, l); } static Object a(ModernAsyncTask modernasynctask, Object obj) { return modernasynctask.d(obj); } static AtomicBoolean a(ModernAsyncTask modernasynctask) { return modernasynctask.o; } public static void a(Runnable runnable) { k.execute(runnable); } public static void a(Executor executor) { k = executor; } public static void b() { j.getLooper(); } static void b(ModernAsyncTask modernasynctask, Object obj) { modernasynctask.c(obj); } static void c(ModernAsyncTask modernasynctask, Object obj) { modernasynctask.e(obj); } private void c(Object obj) { if (!o.get()) { d(obj); } } private Object d(Object obj) { j.obtainMessage(1, new s(this, new Object[] { obj })).sendToTarget(); return obj; } private void e(Object obj) { if (e()) { b(obj); } else { a(obj); } n = Status.FINISHED; } public final transient ModernAsyncTask a(Executor executor, Object aobj[]) { if (n == Status.PENDING) goto _L2; else goto _L1 _L1: r.a[n.ordinal()]; JVM INSTR tableswitch 1 2: default 44 // 1 75 // 2 85; goto _L2 _L3 _L4 _L2: n = Status.RUNNING; d(); l.b = aobj; executor.execute(m); return this; _L3: throw new IllegalStateException("Cannot execute task: the task is already running."); _L4: throw new IllegalStateException("Cannot execute task: the task has already been executed (a task can be executed only once)"); } public final Object a(long l1, TimeUnit timeunit) { return m.get(l1, timeunit); } protected transient abstract Object a(Object aobj[]); protected void a() { } protected void a(Object obj) { } public final boolean a(boolean flag) { return m.cancel(flag); } protected void b(Object obj) { a(); } protected transient void b(Object aobj[]) { } public final Status c() { return n; } public final transient ModernAsyncTask c(Object aobj[]) { return a(k, aobj); } protected void d() { } protected final transient void d(Object aobj[]) { if (!e()) { j.obtainMessage(2, new s(this, aobj)).sendToTarget(); } } public final boolean e() { return m.isCancelled(); } public final Object f() { return m.get(); } static { f = new o(); g = new LinkedBlockingQueue(10); d = new ThreadPoolExecutor(5, 128, 1L, TimeUnit.SECONDS, g, f); k = d; } private class Status extends Enum { public static final Status FINISHED; public static final Status PENDING; public static final Status RUNNING; private static final Status a[]; public static Status valueOf(String s1) { return (Status)Enum.valueOf(android/support/v4/content/ModernAsyncTask$Status, s1); } public static Status[] values() { return (Status[])a.clone(); } static { PENDING = new Status("PENDING", 0); RUNNING = new Status("RUNNING", 1); FINISHED = new Status("FINISHED", 2); Status astatus[] = new Status[3]; astatus[0] = PENDING; astatus[1] = RUNNING; astatus[2] = FINISHED; a = astatus; } private Status(String s1, int i1) { super(s1, i1); } } }